package com.iuie.ns.frame.utils;

import java.text.DecimalFormat;
/**
 * 数学转化工具
 * @date 2016-10-04 
 * @author lj
 *
 */
public final class MathUtil {
	
	/**
	 * @description 小数转化为百分数 0.5 => 50%
	 * @param f 小数
	 * @return 百分数
	 */
	public static String convertToPercent(float f) {
		int percent = Math.round(f*100);
		return percent+"%";
	}

	/**
	 * 
	 * @description 将文件大小长度都变了类型转化为带单位（B,KB,MB）的字符串
	 * <p>1024 --> 1KB</p>
	 * <p>1048576 --> 1MB</p>
	 * @author lj
	 * @date 2016年1月15日 下午5:49:55
	 * @param size
	 * @return
	 */
	public static String convertToReadableFileSize(Long size) {
		DecimalFormat df = new DecimalFormat("######0.00");
		String[] units = new String[] { "B", "KB", "MB", "GB", "TB", "PB" };
		double mod = 1024.0;
		double msize = size;
		int i = 0;
		for (i = 0; msize >= mod; i++) {
			msize /= (double)mod;
		}
		return df.format(msize) + units[i];
	}
	
	
	/**
	 * 
	 * @description 将毫秒级的数转为可读的时间
	 * <p>1000-> 1秒</p>
	 * <p>60000-> 1分</p>
	 * <p>1099909000-> 12天17小时</p>
	 * @author lj
	 * @date 2016年1月16日 下午1:19:11
	 * @param time
	 * @return
	 */
	public static String convertToReadableVideoDurationWithMilliSecond(long time) {
		if (time<0) {
			throw new IllegalArgumentException("参数time必须是一个正数");
		}
		String timeStr = null;
		long timeMin = 0,timeSec = 0,timeHour = 0,timeDay=0;
		if (time<1000) {
			timeStr=time+"毫秒";
		}else {
			timeSec=time/1000;
		}
		if (timeSec<60) {
			timeStr = timeSec+"秒";
		} else{
			timeMin=timeSec/60;
			timeStr = timeMin+"分";
			if (timeSec%60 >0) {
				timeStr+=timeSec%60+"秒"; //xx分 yy秒
			}
		}
		
		if (timeMin>=60) {
			timeHour=timeMin/60;
			timeStr=timeHour+"小时";
			if (timeMin%60 >0 ) {
				timeStr+=timeMin%60+"分钟";
			}
		}
		
		if (timeHour>=24) {
			timeDay = timeHour/24;
			timeStr=timeDay+"天";
			if (timeHour%24>0) {
				timeStr+=+timeHour%24+"小时";
			}
		}
		return timeStr;
	}
	
}
